The present invention pertains to a method and apparatus for the compression and transmission of video data. More particularly, the present invention pertains to controlling bit rate in a digital video compressor environment coupled to a transmission medium with an arbitrary or varying bandwidth.
A video compression/transmission system that is known in the art is shown in FIG. 1. A camera 11 is provided that generates video image data for a video capture component 13. The video capture component 13 xe2x80x9ccapturesxe2x80x9d the video image data from the camera one frame at a time in a known manner and at a predetermined rate (e.g., approximately 30 frames per second). The video capture component 13 transfers the video frame data to a video compressor 15 which may compress the video image data for the frame according to a bit-rate control algorithm. Such a bit-rate control algorithm typically includes a compression algorithm such as any of a variety of block transform based video transform algorithms such as H.261 (International Telecommunication Union-Telecommunications Standardization Sector (ITU-T), March, 1993), H.263 (ITU-T, Dec. 5, 1995), JPEG (xe2x80x9cJoint Photographic Expert Groupxe2x80x9d)(International Organization for Standardization/International Electrotechnical Commission (xe2x80x9cISO/IECxe2x80x9d) 10918-1), MPEG-I, and MPEG-II (xe2x80x9cMotion Picture Expert Groupxe2x80x9d)(ISO/IEC 11172-2 and 138182). The compressed video frame data is then sent to a transmitter 19 via a video controller 17, and the data is stored temporarily in a transmit buffer 20 under the control of a buffer regulator. The transmitter 19 then pulls data from the transmit buffer sequentially and adds the appropriate protocol information and transmits the data to a transmission medium (e.g., POTS (Plain Old Telephone Service) in a modem-to-modem connection).
In some systems, such as some ProShare(copyright) systems and Intel Smart Video Recorders(copyright) systems (Intel Corporation, Santa Clara, Calif.), the bit rate control algorithm of compressor 15 operates separately from the transfer of data from the transmit buffer 20 to the transmission medium 21 by the buffer regulator. Because of this separation, the operation of the bit rate control algorithm can only estimate the state of the transmit buffer 20 (i.e., how much data is contained in the transmit buffer 20). Also, the buffer regulator of the transmitter 19 typically requires that the video compressor 15 produce the same amount of compressed data for each frame. This separation of the components leads to inaccuracies in that the transmit buffer 20 is incorrectly filled (i.e., not filled with enough data which reduces the frame rate over the transmission medium or filled with too much data causing delay or latency).
In some systems, the transmission rate can vary widely (e.g., over a high speed connection to a network such as the Internet). For example, in one video-phone application, the bandwidth of the transmission medium may be changed by the user""s xe2x80x9con-the-flyxe2x80x9d during the communication. With such varying transmission rates, there exists additional problems in processor utilization to adequately compress frames of video data. This is due to the fact that the transmission medium may at times be able to provide more resources than can be adequately or efficiently used by the processor system.
In view of the above, there is a need for a system and method that improves processor utilization in handling transmission of video frame data.
According to an embodiment of the present invention, a method is presented for controlling a video image compression system. In this method a video frame of raw video image data is compressed using a processor. Then it is determined whether the processor is limited in its ability to compress video image data. Then, a target frame rate is adjusted based on a current amount of time taken to compress said video frame of raw video image data.